﻿
namespace BSCMFF.Web.DomainService
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Data.Objects.DataClasses;
    using System.Linq;
    using System.ServiceModel.DomainServices.Hosting;
    using System.ServiceModel.DomainServices.Server;


    // The MetadataTypeAttribute identifies Strategic_TargetMetadata as the class
    // that carries additional metadata for the Strategic_Target class.
    [MetadataTypeAttribute(typeof(Strategic_Target.Strategic_TargetMetadata))]
    public partial class Strategic_Target
    {

        // This class allows you to attach custom attributes to properties
        // of the Strategic_Target class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class Strategic_TargetMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private Strategic_TargetMetadata()
            {
            }

            public string Description { get; set; }

            public Nullable<DateTime> ExpectedDate { get; set; }

            public string Name { get; set; }

            public Nullable<int> Perspective_FK { get; set; }

            public int Strategic_Target_ID { get; set; }

            public EntityCollection<Strategy_Node> Strategy_Node { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies Strategy_ArrowMetadata as the class
    // that carries additional metadata for the Strategy_Arrow class.
    [MetadataTypeAttribute(typeof(Strategy_Arrow.Strategy_ArrowMetadata))]
    public partial class Strategy_Arrow
    {

        // This class allows you to attach custom attributes to properties
        // of the Strategy_Arrow class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class Strategy_ArrowMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private Strategy_ArrowMetadata()
            {
            }

            public double Bend { get; set; }

            public string Color { get; set; }

            public string Description { get; set; }

            public string Name { get; set; }

            public int Strategy_Arrow_ID { get; set; }

            public Strategy_Node Strategy_Node { get; set; }

            public int Strategy_Node_From_FK { get; set; }

            public int Strategy_Node_To_FK { get; set; }

            public Strategy_Node Strategy_Node1 { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies Strategy_MapMetadata as the class
    // that carries additional metadata for the Strategy_Map class.
    [MetadataTypeAttribute(typeof(Strategy_Map.Strategy_MapMetadata))]
    public partial class Strategy_Map
    {

        // This class allows you to attach custom attributes to properties
        // of the Strategy_Map class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class Strategy_MapMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private Strategy_MapMetadata()
            {
            }

            public string Description { get; set; }

            public string Name { get; set; }

            public int Strategy_Map_ID { get; set; }

            public EntityCollection<Strategy_Node> Strategy_Node { get; set; }

            public Nullable<int> Type { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies Strategy_NodeMetadata as the class
    // that carries additional metadata for the Strategy_Node class.
    [MetadataTypeAttribute(typeof(Strategy_Node.Strategy_NodeMetadata))]
    public partial class Strategy_Node
    {

        // This class allows you to attach custom attributes to properties
        // of the Strategy_Node class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class Strategy_NodeMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private Strategy_NodeMetadata()
            {
            }

            public double Bend { get; set; }

            public string ColorBackground { get; set; }

            public string ColorText { get; set; }

            public Nullable<int> CoordX { get; set; }

            public Nullable<int> CoordY { get; set; }

            public bool Positioned { get; set; }

            [Include]
            public Strategic_Target Strategic_Target { get; set; }

            public EntityCollection<Strategy_Arrow> Strategy_Arrow { get; set; }

            public EntityCollection<Strategy_Arrow> Strategy_Arrow1 { get; set; }

            public Strategy_Map Strategy_Map { get; set; }

            public int Strategy_Map_FK { get; set; }

            public int Strategy_Node_ID { get; set; }

            public int Strategy_Target_FK { get; set; }
        }
    }
}
